class Solution {
public:
    vector<int> t;
    int getfib(int n)
    {
        
        if(n==0)
            return 0;
        if(n==1 || n==2)
            return 1;

        if(t[n] != -1)
            return t[n];
        t[n]=getfib(n-1)+getfib(n-2)+getfib(n-3);
        return t[n]=getfib(n-1)+getfib(n-2)+getfib(n-3);
    }
    int tribonacci(int n) {
        // int t[100];
        // t[0]=0,t[2]=t[1]=1;
        // for(int i=0;i<=n-3;i++)
        // {
        //     t[i+3]=t[i]+t[i+1]+t[i+2];
        // }
        // return t[n];
        t.resize(38,-1);
        return getfib(n);

    }
};